Don't access event after freeing it
authorAlexander Larsson <alexl@redhat.com>
Tue, 9 Dec 2008 12:35:46 +0000 (13:35 +0100)
committerAlexander Larsson <alex@localhost.localdomain>
Thu, 2 Apr 2009 08:14:08 +0000 (10:14 +0200)
gdk/gdkwindow.c

index caaf848ac357f79122cde160ea058ee95d4789eb..43723cc05083cc28711c87c7a316eda7787a5ad0 100644 (file)
@@ -7344,14 +7344,6 @@ _gdk_windowing_got_event (GdkDisplay *display,
     unlink_event = proxy_button_event (pointer_window, x, y,
                                        event);
 
-  if (unlink_event)
-    {
-      _gdk_event_queue_remove_link (display, event_link);
-      g_list_free_1 (event_link);
-      gdk_event_free (event);
-    }
-
-
   /* Store last pointer window and position/state */
 
   display->pointer_info.toplevel_x = x;
@@ -7366,6 +7358,13 @@ _gdk_windowing_got_event (GdkDisplay *display,
       if (pointer_window)
        display->pointer_info.window_under_pointer = g_object_ref (pointer_window);
     }
+
+  if (unlink_event)
+    {
+      _gdk_event_queue_remove_link (display, event_link);
+      g_list_free_1 (event_link);
+      gdk_event_free (event);
+    }
 }
 
 #define __GDK_WINDOW_C__